package mysql8学习.高级.第06章_索引的数据结构;

/**
 * B树的英文是Balance Tree,也就是多路平衡查找树。
 * 简写为B-Tree
 * (注意横杠表示这两个单词连起来的意思，不是减号)。
 * 它的高度远小于平衡二叉树的高度。
 *
 * B树作为多路平衡查找树，它的每一个节点最多可以包括M个子节点，M 称为B树的阶。
 * 每个磁盘块中包括了 关键字 和 子节点的指针。
 * 如果一个磁盘块中包括了x个关键字，那么指针数就是x+1。
 * 对于一 个100阶的B树来说，如果有3层的话最多可以存储约100万的索引数据。
 * 对于大量的索引数据来说，采用B树的结构是非常适合的,因为树的高度要远小于二叉树的高度。
 *
 * 你能看出来在B树的搜索过程中，我们比较的次数并不少,
 * 但如果把数据读取出来然后在内存中进行比较，这个时间就是可以忽略不计的。
 * 而读取磁盘块本身需要进行I/O操作,消耗的时间比在内存中进行比较所需要的时间要多,是数据查找用时的重要因素。
 * B树相比于平衡二叉树来说磁盘I/O操作要少,在数据查询中比平衡二叉树效率要高。
 * 所以只要树的高度足够低，I/O次数足够少， 就可以提高查询性能。
 *
 *
 * 1.B树在插入和删除节点的时候如果导致树不平衡，
 *    就通过自动调整节点的位置来保持树的自平衡。
 * 2.关键字集合分布在整棵树中，即叶子节点和非叶子节点都存放数据。
 *     搜索有可能在非叶子节点结束
 * 3.其搜索性能等价于在关键字全集内做一次二分查找。
 *
 * b树每个点  都是数据   他与b+树的区别是
 *        b数每个点都是所要的数据
 *        b+数  只有叶子节点是数据
 *
 */
public class J5_B数 {
}
